﻿/*
SINACOR - BMF&Bovespa
Arquivo: HistoricoOrdemNegocio.cs
Criado em: 12-jul-2010 15:37:43
Arquiteto Responsável: p-ksantos
*/
using System;
using System.Collections.Generic;
using System.Text;
using Sinacor.Infra.Common;
using Sinacor.Infra.UI.Common;
using Sinacor.Infra.Common.Exceptions;


namespace Sinacor.UI.Bovespa.Movimento.Presenter
{
    public class HistoricoOrdemNegocio : BasePresenter<IHistoricoOrdemNegocio>
    {
        #region Construtor
        public HistoricoOrdemNegocio(IHistoricoOrdemNegocio view)
            : base(view)
        {
            _communicationHistoricoOrdemNegocio = new Sinacor.UI.Bovespa.Movimento.Communication.HistoricoOrdemNegocio(this.Session);
        }
        #endregion

        #region Atributos
        private Communication.HistoricoOrdemNegocio _communicationHistoricoOrdemNegocio;
        private Model.Parameter.FiltroHistoricoNegocio _filtroHistoricoNegocio;
        private Model.Parameter.FiltroHistoricoOrdem _filtroHistoricoOrdem;
        private Model.HistoricoNegocio _historicoNegocio;
        private Model.HistoricoOrdem _historicoOrdem;
        private ModelCollection<Model.HistoricoNegocio> _listaHistoricoNegocios;
        private ModelCollection<Model.HistoricoOrdem> _listaHistoricoOrdens;
        #endregion

        #region Propriedades
        public Model.Parameter.FiltroHistoricoNegocio FiltroHistoricoNegocio
        {
            get { return _filtroHistoricoNegocio; }
            set { _filtroHistoricoNegocio = value; }
        }

        public Model.Parameter.FiltroHistoricoOrdem FiltroHistoricoOrdem
        {
            get { return _filtroHistoricoOrdem; }
            set { _filtroHistoricoOrdem = value; }
        }

        public Model.HistoricoNegocio HistoricoNegocio
        {
            get { return _historicoNegocio; }
            set { _historicoNegocio = value; }
        }

        public Model.HistoricoOrdem HistoricoOrdem
        {
            get { return _historicoOrdem; }
            set { _historicoOrdem = value; }
        }

        public ModelCollection<Model.HistoricoNegocio> ListaHistoricoNegocios
        {
            get { return _listaHistoricoNegocios; }
            set { _listaHistoricoNegocios = value; }
        }

        public ModelCollection<Model.HistoricoOrdem> ListaHistoricoOrdens
        {
            get { return _listaHistoricoOrdens; }
            set { _listaHistoricoOrdens = value; }
        }
        #endregion

        #region Métodos
        /// <summary>
        /// Disponibiliza uma lista de Histórico de Negócios.
        /// </summary>
        public void ConsultarHistoricoNegocios()
        {
            try
            {
                ListaHistoricoNegocios = _communicationHistoricoOrdemNegocio.ConsultarHistoricoNegocios(_filtroHistoricoNegocio);
                View.AtualizarGridHistoricoNegocios();

                if (ListaHistoricoNegocios.Count == 0)
                    View.InformarNenhumRegistroEncontrado();

            }
            catch (Exception ex)
            {
                base.HandleException(ex);
            }
        }

        /// <summary>
        /// Disponibiliza uma lista de Histórico de Ordens.
        /// </summary>
        public void ConsultarHistoricoOrdens()
        {
            try
            {
                ListaHistoricoOrdens = _communicationHistoricoOrdemNegocio.ConsultarHistoricoOrdens(_filtroHistoricoOrdem);
                View.AtualizarGridHistoricoOrdens();

                if (ListaHistoricoOrdens.Count == 0)
                    View.InformarNenhumRegistroEncontrado();

            }
            catch (Exception ex)
            {
                base.HandleException(ex);
            }
        }

        /// <summary>
        /// Disponibiliza uma lista de Negócios para a Ordem.
        /// </summary>
        public void ConsultarNegociosDaOrdem()
        {
            try
            {
                ListaHistoricoNegocios = _communicationHistoricoOrdemNegocio.ConsultarNegociosDaOrdem(_historicoOrdem);
                View.AtualizarGridHistoricoNegocios();
            }
            catch (Exception ex)
            {
                base.HandleException(ex);
            }

        }

        /// <summary>
        /// Disponibiliza uma lista de Ordens para o Negócio.
        /// </summary>
        public void ConsultarOrdensDoNegocio()
        {
            try
            {
                ListaHistoricoOrdens = _communicationHistoricoOrdemNegocio.ConsultarOrdensDoNegocio(_historicoNegocio);
                View.AtualizarGridHistoricoOrdens();
            }
            catch (Exception ex)
            {
                base.HandleException(ex);
            }
        }
        #endregion
    }

}